<?php

/* ------ ------ ------ ------ ------ ------ ------ ----- ----- ----- ----- -----
 *  Questo script contiene le funzioni necessarie per la gestione,
 *  controllo e manipolazione delle immagini presenti nella nostra applicazione.
 * ------ ------ ------ ------ ------ ------ ------ ----- ----- ----- ----- ----- */

Class imagecontrol {

/* --------- Funzione per il controllo dell'immagine inserita in un form ----------- */

     function image_control(&$message,&$style){

        // Se nessun file è stato selezionato per l'upload salta i controlli
        if($_FILES['immagine']['error'] == UPLOAD_ERR_NO_FILE){
            return TRUE;
        }

        // Controllo se l'upload è andato a buon fine
        if($_FILES['immagine']['error'] != UPLOAD_ERR_OK){

            // Controllo che il file rispetti le dimensioni specificate nel campo MAX_FILE_SIZE del form d'inserimento
            if($_FILES['immagine']['error'] == 2){
                $file_size = substr($_POST['MAX_FILE_SIZE'], 0, -3);
                $message = "l'immagine caricata non deve superare i ".$file_size."KB!";
                $style = "alert";
                return FALSE;
            }else{
            $message = "Errore nell'upload dell'immagine: ".$_FILES['immagine']['error'];
            $style = "alert";
            return FALSE;
            }

        }else{

            
            // Ottengo le informazioni sull'immagine
            list($width, $height, $type, $attr) = getimagesize($_FILES['immagine']['tmp_name']);

            // Dichiaro le dimensioni massime dell'immagine
            $max_width = 240;     // larghezza massima dell'immagine
            $max_height = 250;    // altezza massima dell'immagine

            // Controllo che le dimensioni (in pixel) non superino quelle massime
            if (($width > $max_width) || ($height > $max_height)) {
                $message = "Le dimensioni(pixel) dell'immagine superano le massime consentite";
                $style = "alert";
                return FALSE;
                          /*
                          // se le superano ridimensiono l'immagine
                          $ratioh = $max_height/$height;
                          $ratiow = $max_width/$width;
                          $ratio = min($ratioh, $ratiow);

                          // Nuove dimensioni dell'immagine
                          $width = intval($ratio*$width);
                          $height = intval($ratio*$height);
                          */
                }
                
                      // Controllo che il file sia in uno dei formati GIF, JPEG, JPG o PNG
                if (!(($_FILES['immagine']['type'] == "image/jpeg") || ($_FILES['immagine']['type'] == "image/jpg") ||
                    ($_FILES['immagine']['type'] == "image/png") || ($_FILES['immagine']['type'] == "image/gif"))) {
                    $message = "Formato immagine non corretto";
                    $style = "alert";
                    return FALSE;
                    }

             }
             return TRUE;
         }
}

?>
